/*
** ############################################################################
**     Project   : osdee - Operative Systems Design for Embedded Envrionments
**     File      : SchM.h
**     Revision  ; 1.0
**     Abstract  :
**         Scheduler Module API Interface.
**
**     Copyright : 2014 Fernando Rodriguez - Victor Huidobro, 
**                 Open source with out any responsability.
**     
**     mail      : frr@gmail.com, vhuidobrog@gmail.com
** ############################################################################
*/

#ifndef _SCHM_H_
#define _SCHM_H_

#include "cdef.h"
#include "Gpt.h"
#include "SchM_Types.h"
#include "Os_TaskM.h"

/*
** ============================================================================
**     Function    :  SchM_Init
**
**     Description :
**         Initializes the Scheduler module with an specified Configuration.
** ============================================================================
*/
void SchM_Init(const tsOS_Des_Cfg* ptOS_Cfg);

/*
** ============================================================================
**     Function    :  SchM_DeInit
**
**     Description :
**         Deinitializes the Scheduler module.
** ============================================================================
*/
void SchM_DeInit(void);

/*
** ============================================================================
**     Function    :  SchM_Start
**
**     Description :
**         Starts the Scheduler operation.
** ============================================================================
*/
void SchM_Start(void);

/*
** ============================================================================
**     Function    :  SchM_OsTick
**
**     Description :
**         OS Tick Callback provided by the Scheduler.
** ============================================================================
*/
void SchM_OsTick(void);

/*
** ============================================================================
**     Function    :  SchM_Background
**
**     Description :
**         Scheduler Background Task.
** ============================================================================
*/
void SchM_Background(void);

extern UINT16 m_tSchm_Counter;

#endif /*_SCHM_H_*/
